<template>
  <div class="app-container">
    <upload-excel-component
      :on-success="handleSuccess"
      :before-upload="beforeUpload"
    />
    <el-table
      :data="tableData"
      border
      highlight-current-row
      style="width: 100%; margin-top: 20px"
    >
      <el-table-column
        v-for="item of tableHeader"
        :key="item"
        :prop="item"
        :label="item"
      />
    </el-table>
  </div>
</template>

<script>
import UploadExcelComponent from "@/components/UploadExcel/index.vue";
import {formatExcelDate} from '@/utils/index'
import { importEmployee } from '@/api/employees';
export default {
  name: "UploadExcel",
  components: { UploadExcelComponent },
  data() {
    return {
      tableData: [],
      tableHeader: [],
    };
  },
  methods: {
    beforeUpload(file) {
      const isLt1M = file.size / 1024 / 1024 < 1;

      if (isLt1M) {
        return true;
      }

      this.$message({
        message: "Please do not upload files larger than 1m in size.",
        type: "warning",
      });
      return false;
    },
    transZhkeyToEnkey(data) {
      // 1. 映射对象，根据映射对象找英文的键
      const mapInfo = {
        入职日期: "timeOfEntry",
        手机号: "mobile",
        姓名: "username",
        转正日期: "correctionTime",
        工号: "workNumber",
        部门: "departmentName",
        聘用形式: "formOfEmployment",
      };
      return data.map((item)=>{
        const enObj ={}
        Object.keys(item).forEach((zhKey)=>{
          const enKey =mapInfo[zhKey]
          if(enKey==='timeOfEntry' || enKey==='correctionTime'){
            enObj[enKey] =new Date(formatExcelDate(item[zhKey]))
          }else{
            enObj[enKey] =item[zhKey]
          }
        })
        return enObj
      })
    },
    //员工的批量导入
    async importAddEmployees(data){
      try {
        const res =await importEmployee(data)
        console.log(res);
        if(res.code!==10000) return this.$message,error(res.message)
        this.$message.success(res.message)
        //添加完成跳转回原来页面
        this.$router.back()
      } catch (error) {
        console.log(error);
      }
    },
    handleSuccess({ results, header }) {
      this.tableData = results;
      this.tableHeader = header;
      const data =this.transZhkeyToEnkey(results)
      this.importAddEmployees(data)
    },
  },
};
</script>
